import store from "@/store";
import { getRequest } from "./api";
export const initMenu = (router, store) => {
    if (store.state.routes.length > 0) {
        return
    }
    getRequest('/system/config/menu').then(data => {
        if (data) {
            //格式化router
            let fmtRoutes = formatRoutes(data)
            //添加到路由
            router.addRoutes(fmtRoutes)
            //将数据存入vuex
            store.commit('initRoutes', fmtRoutes)
            store.dispatch('connect')
        }
    })
}
export const formatRoutes = (routes) => {
    let fntRoutes = []
    routes.forEach(router => {
        let {
            path,
            component,
            name,
            icons,
            children
        } = router

        if (children && children instanceof Array) {
            //递归
            children = formatRoutes(children)
        }
        let fmRouter = {
            path: path,
            name: name,
            icons: icons,
            children: children,
            component(resolve) {
                if(component.startsWith('Home')){
                    require(['../views/home/' + component + '.vue'], resolve)
                }
                else if(component.startsWith('Emp')){
                    require(['../views/emp/' + component + '.vue'], resolve)
                }else if(component.startsWith('Per')){
                    require(['../views/per/' + component + '.vue'], resolve)
                }
                else if(component.startsWith('Sal')){
                    require(['../views/sal/' + component + '.vue'], resolve)
                }
                else if(component.startsWith('Sys')){
                    require(['../views/sys/' + component + '.vue'], resolve)
                }
                
            }
        }
        fmRouter.push(fmRouter)
    })
    return fmtRoutes
}